import request from "@/utils/request";
import service from './axios';

// 搜索用户
export function searchUsers(params) {
  return request({
    url: "/admin/users/search",
    method: "get",
    params,
  });
}

// 获取用户列表
export function getUserList(params) {
  return request({
    url: "/admin/users/list",
    method: "get",
    params,
  });
}

// 获取用户详情
export function getUserDetail(id) {
  return request({
    url: `/admin/users/${id}`,
    method: "get",
  });
}

// 更新用户信息
export function updateUser(data) {
  return request({
    url: `/admin/users/${data.id}`,
    method: "put",
    data,
  });
}

// 删除用户
export function deleteUser(id) {
  return request({
    url: `/admin/users/${id}`,
    method: "delete",
  });
}

// 批量更新用户状态
export function batchUpdateUserStatus(ids, status) {
  return request({
    url: "/admin/users/batch/status",
    method: "put",
    data: { ids, status },
  });
}

// 导出用户数据
export function exportUserData(params) {
  return request({
    url: "/admin/users/export",
    method: "get",
    params,
    responseType: "blob",
  });
}

/**
 * 获取用户个人资料信息
 * @returns {Promise} 用户资料信息
 */
export function getUserProfile() {
  return service({
    url: '/user/profile',
    method: 'get'
  });
}

/**
 * 更新用户个人资料
 * @param {Object} data 用户资料数据
 * @returns {Promise} 更新结果
 */
export function updateUserProfile(data) {
  return service({
    url: '/user/profile',
    method: 'put',
    data
  });
}

/**
 * 修改用户手机号
 * @param {Object} data 包含旧手机验证码、新手机号和验证码
 * @returns {Promise} 更新结果
 */
export function updateUserPhone(data) {
  return service({
    url: '/user/phone',
    method: 'put',
    data
  });
}

/**
 * 修改用户邮箱
 * @param {Object} data 包含新邮箱和验证码
 * @returns {Promise} 更新结果
 */
export function updateUserEmail(data) {
  return service({
    url: '/user/email',
    method: 'put',
    data
  });
}

/**
 * 修改用户密码
 * @param {Object} data 包含旧密码和新密码
 * @returns {Promise} 更新结果
 */
export function updateUserPassword(data) {
  return service({
    url: '/user/password',
    method: 'put',
    data
  });
}

/**
 * 发送手机验证码
 * @param {String} phone 手机号
 * @returns {Promise} 发送结果
 */
export function sendPhoneCode(phone) {
  return service({
    url: '/public/sms/code',
    method: 'post',
    data: { phone }
  });
}

/**
 * 发送邮箱验证码
 * @param {String} email 邮箱
 * @returns {Promise} 发送结果
 */
export function sendEmailCode(email) {
  return service({
    url: '/public/email/code',
    method: 'post',
    data: { email }
  });
}
